package com.rerun.entity;


import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.rerun.common.util.JsonDateFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * The type Resume.
 */
@TableName("resume")
public class Resume extends Model<Resume> {

  private static final long serialVersionUID = 7596409816955206022L;
  @TableId(type = IdType.UUID)
  private String id;
  private String memberId;
  private String headerImg;
  private String name;
  private long sex;
  @JsonSerialize(using=JsonDateFormat.class)
  private Date birthday;
  @JsonSerialize(using=JsonDateFormat.class)
  private Date beginWork;
  @JsonSerialize(using=JsonDateFormat.class)
  private Date createTime;
  @JsonSerialize(using=JsonDateFormat.class)
  private Date updateTime;
  private long status;
  private String residence;
  private String livingCity;
  private String dataFrom ;
  private String phoneNumber;
  @TableField(exist = false)
  private List<WorkExperience> experiences;
  @TableField(exist = false)
  private List<EduBackground> backgrounds;
  @TableField(exist = false)
  private HaveSkills haveSkills;
  @TableField(exist = false)
  private CollectionResume collectionResume;
  
  public CollectionResume getCollectionResume() {
	return collectionResume;
}

public void setCollectionResume(CollectionResume collectionResume) {
	this.collectionResume = collectionResume;
}

public List<WorkExperience> getExperiences() {
	return experiences;
}

public void setExperiences(List<WorkExperience> experiences) {
	this.experiences = experiences;
}

public List<EduBackground> getBackgrounds() {
	return backgrounds;
}

public void setBackgrounds(List<EduBackground> backgrounds) {
	this.backgrounds = backgrounds;
}

public HaveSkills getHaveSkills() {
	return haveSkills;
}

public void setHaveSkills(HaveSkills haveSkills) {
	this.haveSkills = haveSkills;
}

public String getId() {
    return id;
  }

  public void setId(String id) {
    this.id = id;
  }

  public String getMemberId() {
    return memberId;
  }

  public void setMemberId(String memberId) {
    this.memberId = memberId;
  }

  public String getHeaderImg() {
    return headerImg;
  }

  public void setHeaderImg(String headerImg) {
    this.headerImg = headerImg;
  }

  public String getName() {
    return name;
  }

  public void setName(String name) {
    this.name = name;
  }

  public long getSex() {
    return sex;
  }

  public void setSex(long sex) {
    this.sex = sex;
  }

  public Date getBirthday() {
    return birthday;
  }

  public void setBirthday(Date birthday) {
    this.birthday = birthday;
  }

  public Date getBeginWork() {
    return beginWork;
  }

  public void setBeginWork(Date beginWork) {
    this.beginWork = beginWork;
  }

  public Date getCreateTime() {
    return createTime;
  }

  public void setCreateTime(Date createTime) {
    this.createTime = createTime;
  }

  public Date getUpdateTime() {
    return updateTime;
  }

  public void setUpdateTime(Date updateTime) {
    this.updateTime = updateTime;
  }

  public long getStatus() {
    return status;
  }

  public void setStatus(long status) {
    this.status = status;
  }

  public String getResidence() {
    return residence;
  }

  public void setResidence(String residence) {
    this.residence = residence;
  }

  public String getLivingCity() {
    return livingCity;
  }

  public void setLivingCity(String livingCity) {
    this.livingCity = livingCity;
  }

  public String getDataFrom() {
    return dataFrom;
  }

  public void setDataFrom(String dataFrom) {
    this.dataFrom = dataFrom;
  }

  public String getPhoneNumber() {
    return phoneNumber;
  }

  public void setPhoneNumber(String phoneNumber) {
    this.phoneNumber = phoneNumber;
  }

  @Override
  public String toString() {
    return "{" +
            "id:" + id +
            ", memberId:" + memberId +
            ", headerImg:" + headerImg +
            ", name:" + name +
            ", sex:" + sex +
            ", birthday:" + birthday +
            ", beginWork:" + beginWork +
            ", createTime:" + createTime +
            ", updateTime:" + updateTime +
            ", status:" + status +
            ", residence:" + residence +
            ", livingCity:" + livingCity +
            ", dataFrom:" + dataFrom +
            ", phoneNumber:" + phoneNumber +
            '}';
  }

  @Override
  protected Serializable pkVal() {
    return this.id;
  }
}
